package wrapper;

import java.sql.SQLOutput;

public class IntegerDemo {
    public static void main(String[] args) {
        //演示包装类的定义
        Integer integer1 = new Integer(5);
        Integer integer2 = new Integer(5);
        System.out.println(integer1==integer2);//false
        System.out.println(integer1.equals(integer2));

        Integer integer3 = Integer.valueOf(3);
        Integer integer4 = Integer.valueOf(3);
        System.out.println(integer3==integer4);//true
        System.out.println(integer3.equals(integer4));

        //演示包装类型与基本类型之间的转换
        Integer i = Integer.valueOf(5);//基本类型转换为包装类型
        int j = i.intValue();//包装类型转换为基本类型

        /*在jdk1.5时推出了一个新特性:自动拆装箱
        * 当编译器编译时若发现是基本类型与包装类型之间的操作,编译器自动补齐代码完成转换工作
        * 这一过程叫做自动拆装箱*/
        Integer m = 12;//自动装箱
        int n = m;//自动拆箱

        //演示包装类的常用操作
        //1)通过包装类获取基本类型的取值范围
        int max = Integer.MAX_VALUE;
        int min = Integer.MIN_VALUE;
        System.out.println("int的最大值:"+max+",int的最小值:"+min);

        long maxLong = Long.MAX_VALUE;
        long minLong = Long.MIN_VALUE;
        System.out.println("long的最大值:"+maxLong+",long的最小值:"+minLong);

        //2)包装类可以将字符串类型转换为对应的基本类型(要求熟练掌握)
        String str = new String("123");
        int i1 = Integer.parseInt(str);
        System.out.println(i1);

        String i2 = new String("123.123");
        double dou = Double.parseDouble(i2);
        System.out.println(dou);

    }
}
